package yweb

import (
	// "fmt"
	"html/template"
	"log"
	"yweb/context"
)

type Controller struct {
	Ctx *context.Context

	//要分配到页面的数据
	Data map[string]string

	// 模板名字
	Tpl string
}

func (this *Controller) Init(ctx *context.Context) {
	this.Ctx = ctx
}

type ControllerInterface interface {
	Init(ctx *context.Context)
	Get()
	Post()
	Show()
}

func (this *Controller) Get() {
	log.Println("get")
	this.Ctx.WriteString("get")
}

func (this *Controller) Post() {
	log.Println("post")
	this.Ctx.WriteString("post")
}

//渲染到页面
func (this *Controller) Show() {

	//如果写了模板名字就去取模板
	if len(this.Tpl) > 0 {

		//取模板文件
		t, err := template.ParseFiles("tpl/" + this.Tpl)
		if err != nil {
			log.Println(err)

			this.Ctx.ResponseWriter.Header().Set("content-type", "text/html; charset=utf-8")
			this.Ctx.ResponseWriter.Write([]byte("没找到模板文件：" + this.Tpl))

		} else {
			t.Execute(this.Ctx.ResponseWriter, this.Data)
		}
	}

}
